##
# Main.py
#
# Description: The game logic for eldritch-dungeons.
#
# Authors: Matt Holland and Taylor Nightingale
##

# Imports
import libtcodpy as libtcod  # For so much Rogue-like stuff
from Constants import *  # For all of our constant needs
from MainUtils import *  # For the starting menus.



# Initialize the GUI
initializeBasicGUI()

# Show the user the start screen
startMenuSelection()


##
# Main:
#   TODO: Set Up Game GUI
#   TODO: Intialize game
#   TODO: start game loop
##
mouse = libtcod.Mouse()
key = libtcod.Key()
# Create a new console for graphics buffering
con = libtcod.console_new(SCREEN_WIDTH, SCREEN_HEIGHT)
##
# playGame()
#   TODO: setup and draw map / contents
#   TODO: Flush / clear the screen
#   TODO: Handle input
#   TODO: Execute On Tick Function for every object
##
while not libtcod.console_is_window_closed():
    # Listen for key and mouse events from the buffer and upload them into key and mouse.
    libtcod.sys_check_for_event(libtcod.EVENT_KEY_PRESS | libtcod.EVENT_MOUSE, key, mouse)


##
# Handle Input
#   TODO: Save game / quit game / full screen
#   TODO: Pause Game / Access Menus
#   TODO: Move Camera N/W/S/E
#
#
#   TODO: Build Structures / Units
#
#   TODO: Select Object
#   TODO: Give Object a Command if it has any
#   TODO: Look at Objects Inventory if it has one
#   TODO: Look at Objects stats
#
#   TODO: Look at Dungeon Stats
#
##